/****************************************************************
 * Fulguro
 * Copyright (C) 2004 Christophe Clienti
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 ***************************************************************/

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __FLGR_ARITH_H
#define __FLGR_ARITH_H
  
#include <flgrCoreDll.h>
#include <flgrCoreErrors.h>
#include <flgrCoreTypes.h>
#include <flgrCoreData.h>
#include <flgrCoreVector.h>

  typedef fgBIT     (*FctArithOpDi_fgBIT_t)    (fgBIT     a, fgBIT     b);
  typedef fgUINT8   (*FctArithOpDi_fgUINT8_t)  (fgUINT8   a, fgUINT8   b);
  typedef fgUINT16  (*FctArithOpDi_fgUINT16_t) (fgUINT16  a, fgUINT16  b);
  typedef fgUINT32  (*FctArithOpDi_fgUINT32_t) (fgUINT32  a, fgUINT32  b);
  typedef fgINT8    (*FctArithOpDi_fgINT8_t)   (fgINT8    a, fgINT8    b);
  typedef fgINT16   (*FctArithOpDi_fgINT16_t)  (fgINT16   a, fgINT16   b);
  typedef fgINT32   (*FctArithOpDi_fgINT32_t)  (fgINT32   a, fgINT32   b);
  typedef fgFLOAT32 (*FctArithOpDi_fgFLOAT32_t)(fgFLOAT32 a, fgFLOAT32 b);
  typedef fgFLOAT64 (*FctArithOpDi_fgFLOAT64_t)(fgFLOAT64 a, fgFLOAT64 b);

  typedef fgBIT     (*FctArithOpMono_fgBIT_t)    (fgBIT     a);
  typedef fgUINT8   (*FctArithOpMono_fgUINT8_t)  (fgUINT8   a);
  typedef fgUINT16  (*FctArithOpMono_fgUINT16_t) (fgUINT16  a);
  typedef fgUINT32  (*FctArithOpMono_fgUINT32_t) (fgUINT32  a);
  typedef fgINT8    (*FctArithOpMono_fgINT8_t)   (fgINT8    a);
  typedef fgINT16   (*FctArithOpMono_fgINT16_t)  (fgINT16   a);
  typedef fgINT32   (*FctArithOpMono_fgINT32_t)  (fgINT32   a);
  typedef fgFLOAT32 (*FctArithOpMono_fgFLOAT32_t)(fgFLOAT32 a);
  typedef fgFLOAT64 (*FctArithOpMono_fgFLOAT64_t)(fgFLOAT64 a);

  typedef fgBIT     (*FctArithOpMath_fgBIT_t)    (fgBIT     a, fgBIT     b);
  typedef fgUINT8   (*FctArithOpMath_fgUINT8_t)  (fgUINT8   a, fgFLOAT64 b);
  typedef fgUINT16  (*FctArithOpMath_fgUINT16_t) (fgUINT16  a, fgFLOAT64 b);
  typedef fgUINT32  (*FctArithOpMath_fgUINT32_t) (fgUINT32  a, fgFLOAT64 b);
  typedef fgINT8    (*FctArithOpMath_fgINT8_t)   (fgINT8    a, fgFLOAT64 b);
  typedef fgINT16   (*FctArithOpMath_fgINT16_t)  (fgINT16   a, fgFLOAT64 b);
  typedef fgINT32   (*FctArithOpMath_fgINT32_t)  (fgINT32   a, fgFLOAT64 b);
  typedef fgFLOAT32 (*FctArithOpMath_fgFLOAT32_t)(fgFLOAT32 a, fgFLOAT64 b);
  typedef fgFLOAT64 (*FctArithOpMath_fgFLOAT64_t)(fgFLOAT64 a, fgFLOAT64 b);


  /********************************************* 1D Functions **********************************************/


  EXPORT_LIB FLGR_Ret flgr1d_arith_inf(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_sup(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_and(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_or(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_xor(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_atan2(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_argument(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_module(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_multsat(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_subsat(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_addsat(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_div(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_mult(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_sub(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB FLGR_Ret flgr1d_arith_add(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB FLGR_Ret flgr1d_arith_const_inf_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_sup_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_and_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_or_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_xor_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_multsat_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_subsat_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_addsat_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_div_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_mult_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_sub_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_add_ptr(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB FLGR_Ret flgr1d_arith_const_addsat_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_subsat_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_multsat_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_inf_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_sup_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_or_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_xor_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_div_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_mult_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_sub_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_add_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr1d_arith_const_and_str(FLGR_Data1D *datdest, FLGR_Data1D *data1, char * strconst);

  EXPORT_LIB FLGR_Ret flgr1d_arith_floor(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_ceil(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_atan(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_asin(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_acos(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_tan(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_sin(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_cos(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_abs(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_invert(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB FLGR_Ret flgr1d_arith_powb(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *power);
  EXPORT_LIB FLGR_Ret flgr1d_arith_logb(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *base);

/*   EXPORT_LIB FLGR_Ret flgr1d_arith_lrs(FLGR_Data1D *datdest, FLGR_Data1D *data1, int nbshift); */
/*   EXPORT_LIB FLGR_Ret flgr1d_arith_lls(FLGR_Data1D *datdest, FLGR_Data1D *data1, int nbshift); */





  EXPORT_LIB void flgr1d_arith_inf_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_inf_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_sup_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sup_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_and_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_and_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_or_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_or_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_xor_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_xor_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_add_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_add_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_add_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_add_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_add_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_add_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_add_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_add_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_sub_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sub_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sub_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sub_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sub_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sub_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sub_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_sub_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_mult_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_mult_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_mult_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_mult_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_mult_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_mult_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_mult_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_mult_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_div_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_div_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_div_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_div_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_div_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_div_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_div_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_div_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_addsat_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_addsat_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_addsat_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_addsat_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_addsat_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_addsat_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_addsat_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_addsat_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_subsat_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_subsat_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_subsat_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_subsat_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_subsat_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_subsat_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_subsat_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_subsat_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_multsat_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_multsat_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_multsat_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_multsat_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_multsat_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_multsat_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_multsat_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_multsat_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_module_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_module_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_module_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_module_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_module_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_module_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_module_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_module_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_argument_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_argument_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_argument_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_argument_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_argument_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_argument_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_argument_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_argument_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);

  EXPORT_LIB void flgr1d_arith_atan2_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_atan2_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_atan2_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_atan2_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_atan2_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_atan2_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_atan2_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);
  EXPORT_LIB void flgr1d_arith_atan2_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Data1D *data2);










  EXPORT_LIB void flgr1d_arith_const_inf_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_inf_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_sup_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sup_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_and_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_and_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_or_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_or_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_xor_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_xor_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_add_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_add_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_add_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_add_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_add_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_add_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_add_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_add_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_sub_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sub_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sub_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sub_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sub_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sub_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sub_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_sub_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_mult_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_mult_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_mult_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_mult_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_mult_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_mult_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_mult_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_mult_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_div_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_div_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_div_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_div_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_div_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_div_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_div_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_div_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_addsat_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_addsat_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_addsat_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_addsat_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_addsat_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_addsat_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_addsat_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_addsat_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_subsat_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_subsat_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_subsat_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_subsat_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_subsat_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_subsat_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_subsat_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_subsat_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_const_multsat_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_multsat_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_multsat_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_multsat_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_multsat_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_multsat_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_multsat_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr1d_arith_const_multsat_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr1d_arith_logb_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr1d_arith_logb_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr1d_arith_logb_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr1d_arith_logb_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr1d_arith_logb_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr1d_arith_logb_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr1d_arith_logb_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr1d_arith_logb_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *base);

  EXPORT_LIB void flgr1d_arith_powb_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr1d_arith_powb_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr1d_arith_powb_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr1d_arith_powb_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr1d_arith_powb_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr1d_arith_powb_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr1d_arith_powb_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr1d_arith_powb_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1,  FLGR_Vector *power);




  EXPORT_LIB void flgr1d_arith_invert_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_invert_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_invert_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_invert_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_invert_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_invert_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_invert_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_invert_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_abs_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_abs_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_abs_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_abs_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_abs_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_abs_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_abs_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_abs_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_cos_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_cos_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_cos_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_cos_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_cos_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_cos_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_cos_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_cos_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_sin_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_sin_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_sin_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_sin_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_sin_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_sin_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_sin_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_sin_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_tan_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_tan_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_tan_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_tan_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_tan_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_tan_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_tan_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_tan_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_acos_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_acos_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_acos_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_acos_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_acos_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_acos_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_acos_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_acos_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_asin_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_asin_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_asin_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_asin_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_asin_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_asin_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_asin_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_asin_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_atan_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_atan_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_atan_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_atan_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_atan_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_atan_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_atan_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_atan_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_floor_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_floor_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_floor_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_floor_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_floor_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_floor_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_floor_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_floor_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);

  EXPORT_LIB void flgr1d_arith_ceil_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_ceil_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_ceil_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_ceil_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_ceil_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_ceil_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_ceil_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *data1);
  EXPORT_LIB void flgr1d_arith_ceil_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *data1);


  /********************************************* 2D Functions **********************************************/



  EXPORT_LIB FLGR_Ret flgr2d_arith_inf(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_sup(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_and(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_xor(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_or(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_atan2(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_argument(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_module(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_multsat(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_subsat(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_addsat(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_div(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_mult(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_sub(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB FLGR_Ret flgr2d_arith_add(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB FLGR_Ret flgr2d_arith_const_div_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_mult_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_sub_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_add_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_xor_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_or_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_and_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_sup_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_inf_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_multsat_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_subsat_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_addsat_ptr(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB FLGR_Ret flgr2d_arith_const_addsat_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_subsat_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_multsat_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_inf_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_sup_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_or_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_xor_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_div_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_mult_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_sub_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_add_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);
  EXPORT_LIB FLGR_Ret flgr2d_arith_const_and_str(FLGR_Data2D *datdest, FLGR_Data2D *data1, char * strconst);

  EXPORT_LIB FLGR_Ret flgr2d_arith_floor(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_ceil(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_atan(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_asin(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_acos(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_tan(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_sin(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_cos(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_abs(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_invert(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB FLGR_Ret flgr2d_arith_powb(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *power);
  EXPORT_LIB FLGR_Ret flgr2d_arith_logb(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *base);






  EXPORT_LIB void flgr2d_arith_inf_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_inf_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_sup_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sup_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_and_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_and_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_or_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_or_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_xor_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_xor_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_add_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_add_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_add_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_add_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_add_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_add_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_add_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_add_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_sub_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sub_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sub_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sub_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sub_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sub_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sub_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_sub_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_mult_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_mult_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_mult_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_mult_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_mult_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_mult_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_mult_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_mult_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_div_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_div_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_div_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_div_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_div_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_div_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_div_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_div_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_addsat_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_addsat_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_addsat_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_addsat_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_addsat_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_addsat_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_addsat_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_addsat_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_subsat_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_subsat_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_subsat_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_subsat_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_subsat_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_subsat_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_subsat_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_subsat_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_multsat_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_multsat_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_multsat_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_multsat_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_multsat_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_multsat_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_multsat_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_multsat_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_module_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_module_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_module_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_module_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_module_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_module_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_module_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_module_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_argument_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_argument_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_argument_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_argument_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_argument_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_argument_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_argument_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_argument_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);

  EXPORT_LIB void flgr2d_arith_atan2_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_atan2_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_atan2_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_atan2_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_atan2_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_atan2_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_atan2_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);
  EXPORT_LIB void flgr2d_arith_atan2_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Data2D *data2);










  EXPORT_LIB void flgr2d_arith_const_inf_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_inf_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_sup_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sup_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_and_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_and_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_or_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_or_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_xor_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_xor_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_add_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_add_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_add_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_add_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_add_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_add_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_add_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_add_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_sub_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sub_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sub_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sub_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sub_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sub_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sub_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_sub_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_mult_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_mult_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_mult_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_mult_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_mult_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_mult_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_mult_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_mult_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_div_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_div_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_div_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_div_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_div_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_div_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_div_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_div_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_addsat_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_addsat_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_addsat_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_addsat_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_addsat_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_addsat_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_addsat_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_addsat_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_subsat_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_subsat_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_subsat_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_subsat_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_subsat_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_subsat_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_subsat_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_subsat_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_const_multsat_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_multsat_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_multsat_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_multsat_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_multsat_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_multsat_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_multsat_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);
  EXPORT_LIB void flgr2d_arith_const_multsat_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1, FLGR_Vector *vec_const);

  EXPORT_LIB void flgr2d_arith_logb_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr2d_arith_logb_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr2d_arith_logb_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr2d_arith_logb_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr2d_arith_logb_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr2d_arith_logb_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr2d_arith_logb_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);
  EXPORT_LIB void flgr2d_arith_logb_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *base);

  EXPORT_LIB void flgr2d_arith_powb_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr2d_arith_powb_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr2d_arith_powb_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr2d_arith_powb_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr2d_arith_powb_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr2d_arith_powb_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr2d_arith_powb_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);
  EXPORT_LIB void flgr2d_arith_powb_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1,  FLGR_Vector *power);




  EXPORT_LIB void flgr2d_arith_invert_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_invert_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_invert_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_invert_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_invert_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_invert_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_invert_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_invert_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);

  EXPORT_LIB void flgr2d_arith_abs_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_abs_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_abs_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_abs_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_abs_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_abs_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_abs_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_abs_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);

  EXPORT_LIB void flgr2d_arith_cos_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_cos_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_cos_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_cos_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_cos_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_cos_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_cos_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_cos_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);

  EXPORT_LIB void flgr2d_arith_sin_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_sin_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_sin_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_sin_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_sin_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_sin_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_sin_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_sin_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);

  EXPORT_LIB void flgr2d_arith_tan_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_tan_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_tan_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_tan_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_tan_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_tan_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_tan_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_tan_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);

  EXPORT_LIB void flgr2d_arith_acos_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_acos_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_acos_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_acos_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_acos_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_acos_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_acos_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_acos_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);

  EXPORT_LIB void flgr2d_arith_asin_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_asin_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_asin_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_asin_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_asin_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_asin_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_asin_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_asin_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);

  EXPORT_LIB void flgr2d_arith_atan_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_atan_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_atan_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_atan_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_atan_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_atan_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_atan_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_atan_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);


  EXPORT_LIB void flgr2d_arith_floor_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_floor_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_floor_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_floor_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_floor_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_floor_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_floor_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_floor_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);


  EXPORT_LIB void flgr2d_arith_ceil_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_ceil_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_ceil_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_ceil_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_ceil_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_ceil_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_ceil_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *data1);
  EXPORT_LIB void flgr2d_arith_ceil_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *data1);






#endif

#ifdef __cplusplus
}
#endif
